The present disclosure relates to technology for non-volatile memory.
Semiconductor memory has become increasingly popular for use in various electronic devices. For example, non-volatile semiconductor memory is used in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices. Electrically Erasable Programmable Read Only Memory (EEPROM) and flash memory are among the most popular non-volatile semiconductor memories. With flash memory, also a type of EEPROM, the contents of the whole memory array, or of a portion of the memory, can be erased in one step, in contrast to the traditional, full-featured EEPROM. The array of storage elements may be divided into a large number of blocks of storage elements.
Both the traditional EEPROM and the flash memory utilize a floating gate that is positioned above and insulated from a channel region in a semiconductor substrate. The floating gate is positioned between the source and drain regions. A control gate is provided over and insulated from the floating gate. The threshold voltage (Vth) of the transistor thus formed is controlled by the amount of charge that is retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to permit conduction between its source and drain is controlled by the level of charge on the floating gate. Thus, a storage element may be read by applying a reference voltage to it control gate and sensing the magnitude of the current that flows between its drain and source.
A storage element may be programmed by applying suitable programming voltages to its control gate. Typically, a program voltage Vpgm applied to the control gate during a program operation is applied as a series of pulses that increase in magnitude over time.
For some architecture, the control gates of many storage elements are electrically connected. Typically, the term “word line” is used to refer to this electrical connection of many storage elements. Therefore, a common voltage may be applied to many storage elements at the same time. One end of the word line is driven by a read reference voltage in order to read many storage elements at once. Likewise, one end of the word line is driven by a programming voltage in order to program many storage elements at once.
However, some storage elements may be under-programmed or over-programmed. It is desirable to be able to efficiently determine such “erratically programmed” storage elements after programming has completed. For many conventional techniques, the program data is over-written during programming. For example, data latches that store the program data are over-written as programming proceeds. Therefore, detecting erratically programmed storage elements can be challenging. Furthermore, is desirable to be able to detect erratically programmed storage elements without adding storage such as latches.
Methods and non-volatile storage systems are provided for detecting erratic programming. Erratic programming may include under-programmed or over-programmed storage elements. In one embodiment, a set of data latches are used to store program data for a given memory element. This program data may be maintained after the programming is over for use in erratic program detection. In one embodiment, lockout status is kept in a latch that is used to serially receive program data to be programmed into the storage element. Therefore, no extra latches are required to program the storage elements and to maintain the program data afterwards.